package cn.iocoder.yudao.module.forward.service.ack;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.forward.controller.admin.ack.vo.*;
import cn.iocoder.yudao.module.forward.dal.dataobject.ack.Ack1DO;
import cn.iocoder.yudao.module.forward.dal.dataobject.ack.Ack2DO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * 应答信息 Service 接口
 *
 * @author zhang
 */
public interface Ack1Service {

    /**
     * 创建应答信息
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createAck1(@Valid Ack1SaveReqVO createReqVO);

    /**
     * 更新应答信息
     *
     * @param updateReqVO 更新信息
     */
    void updateAck1(@Valid Ack1SaveReqVO updateReqVO);

    /**
     * 删除应答信息
     *
     * @param id 编号
     */
    void deleteAck1(Integer id);

    /**
     * 获得应答信息
     *
     * @param id 编号
     * @return 应答信息
     */
    Ack1DO getAck1(Integer id);

    /**
     * 获得应答信息分页
     *
     * @param pageReqVO 分页查询
     * @return 应答信息分页
     */
    PageResult<Ack1DO> getAck1Page(Ack1PageReqVO pageReqVO);

    // ==================== 子表（应答统计） ====================

    /**
     * 获得应答统计列表
     *
     * @param ack1Id 所属应答
     * @return 应答统计列表
     */
    List<Ack2DO> getAck2ListByAck1Id(Integer ack1Id);

}